<?php

namespace catchAdmin\logistics\model;
use catchAdmin\customs\model\search\OrderSearch;
use catcher\base\CatchModel;
use catcher\CatchAuth;

/**
 *
 * @property int $id
 * @property string $orderId
 * @property string $task_no
 * @property string $userId
 * @property string $nickname
 * @property datetime $orderDate
 * @property string $contactName
 * @property string $contactCode
 * @property string $contactMobile
 * @property string $contactAddr
 * @property string $detailAddr
 * @property string $postcode
 * @property datetime $modifyTime
 * @property string $modifier
 * @property string $payOrderNo
 * @property int $snum
 * @property string $currency
 * @property float $amount
 * @property float $realPayment
 * @property float $distributionfee
 * @property float $discount
 * @property int $deleteStatus
 * @property string $note
 * @property string $buyerName
 * @property string $ConsigneeCode
 * @property string $ConsigneeCountry
 * @property string $ConsigneeProvince
 * @property string $ConsigneeCity
 * @property string $ConsigneeDistrict
 * @property float $GoodsValue
 * @property float $NetWeight
 * @property float $rough_weight
 * @property string $completeDateTime
 * @property string $CustomsStatus
 * @property float $tax
 * @property string $express_no
 * @property string $express_company
 * @property string $bill_no
 * @property string $get_bill_no
 * @property string $flight_no
 * @property string $payment
 * @property string $paymentsub
 * @property string $ebpCode
 * @property string $ebpName
 * @property string $ebcCode
 * @property string $ebcName
 * @property string $paycomCode
 * @property string $paycomName
 * @property string $logisticsCode
 * @property string $logisticsName
 * @property int $waybill_status
 * @property int $logistics_status
 * @property int $logistics_sense_status
 * @property int $logistics_pay_status
 * @property int $push_pay_status
 * @property int $push_order
 * @property int $push_inventory
 * @property string $error_msg
 * @property string $merchant_id
 * @property int $tenant_id
 * @property string $appid
 * @property string $mch_id
 * @property int $status
 * @property string $guid
 * @property string $clear_guid
 * @property string $returnInfo
 * @property string $clear_returnInfo
 */
class Sinotrans extends CatchModel
{
    use OrderSearch;
    protected $deleteTime = 'status';
    protected $createTime = false;
    protected $updateTime = false;
    
    public $field = [
        // 自增id
        'id',
        // 订单编号
        'orderId',
        // 批次号
        'task_no',
        // 用户id
        'userId',
        // 微信昵称
        'nickname',
        // 订单日期
        'orderDate',
        // 收货联系人
        'contactName',
        // 收货人证件号
        'contactCode',
        // 收货人手机号
        'contactMobile',
        // 收货地址省市区
        'contactAddr',
        // 收货详细地址
        'detailAddr',
        // 邮编
        'postcode',
        // 修改时间
        'modifyTime',
        // 修改人
        'modifier',
        // 支付单号-付款成功后生成
        'payOrderNo',
        // 商品总数量
        'snum',
        // 币制
        'currency',
        // 商品金额
        'amount',
        // 实付款
        'realPayment',
        // 配送费用
        'distributionfee',
        // 非现金抵扣金额
        'discount',
        // 删除状态 0-正常 1-删除
        'deleteStatus',
        // 订单备注
        'note',
        // 订购人姓名
        'buyerName',
        // 订购人证件号
        'ConsigneeCode',
        // 收货人国家(废弃)
        'ConsigneeCountry',
        // 收货人省(废弃)
        'ConsigneeProvince',
        // 收货人市(废弃)
        'ConsigneeCity',
        // 收货人区(废弃)
        'ConsigneeDistrict',
        // 商品货款
        'GoodsValue',
        // 总净重(kg)
        'NetWeight',
        // 毛重
        'rough_weight',
        // 支付完成时间14位   例20180208020558
        'completeDateTime',
        // 支付报关状态 PROCESSING：处理中 SUCCESS:成功 FAILED:失败
        'CustomsStatus',
        // 支付税款
        'tax',
        // 快递单号
        'express_no',
        // 快递公司
        'express_company',
        // 运单号
        'bill_no',
        // 提运单号
        'get_bill_no',
        // 航班号
        'flight_no',
        // 支付返回值
        'payment',
        // 支付提交原值
        'paymentsub',
        // 电商平台代码
        'ebpCode',
        // 电商平台名称
        'ebpName',
        // 电商企业代码
        'ebcCode',
        // 电商企业名称(原电商平台名称)
        'ebcName',
        // 支付平台代码
        'paycomCode',
        // 支付公司名称
        'paycomName',
        // 物流企业代码
        'logisticsCode',
        // 物流企业名称
        'logisticsName',
        // 运单批次状态；0：待导入；1：已导入；2:已出库;3已打包；4：空运已发；-1:取消;5：出库中，6：打包中
        'waybill_status',
        // 物流接口状态 0:未推送  1:已完成 2:已推送 3：推送失败 4：已加入批次
        'logistics_status',
        //
        'logistics_sense_status',
        // 支付单推给物流0:未推送  1:已推送
        'logistics_pay_status',
        // 支付单报关状态0:未报关  1:已报关
        'push_pay_status',
        // 海关订单推送:0:未推送;1:已推送;2电子口岸申报中;3:发送海关成功;4:发送海关失败;100:海关退单;120:海关入库;若小于0数字表示处理异常回执
        'push_order',
        // 海关清单推送0:未推送/1:电子口岸已暂存/2:电子口岸申报中/3:发送海关成功/4:发送海关失败/100:海关退单/120:海关入库/300:人工审核/399:海关审结/800:放行/899:结关/500:查验/501:扣留移送通关/502:扣留移送缉私/503:扣留移送法规/599:其它扣留/700:退运）,若小于0数字表示处理异常回执
        'push_inventory',
        // 物流错误信息
        'error_msg',
        // 电商商户编号db_customs_tenant关联
        'merchant_id',
        // 商户
        'tenant_id',
        //
        'appid',
        //
        'mch_id',
        // 0：正常 1：删除
        'status',
        // （订单）申报成功返回的guid值
        'guid',
        // （清单）申报成功返回的guid值
        'clear_guid',
        // 订单回执信息
        'returnInfo',
        // 清单回执信息
        'clear_returnInfo',
    ];
    
    public $name = 'db_customs_order';
     /**
   * 列表
   *
   * @time 2020年01月09日
   * @param $params
   * @throws \think\db\exception\DbException
   * @return \think\Paginator
   */
    public function getList()
    {
        $where['deleteStatus'] = 0;
        $where['status'] = 0;
        //非管理员要商户id
        $CatchAuth = new CatchAuth();
        if($CatchAuth->user()['type'] !== 1 ){
            $where['tenant_id'] = $CatchAuth->user()['tenant_id'];
        }
        return $this->catchSearch()
                    ->field('id,orderId,task_no,orderDate,contactName,contactAddr,detailAddr,realPayment,express_no,express_company,logistics_status,modifyTime,error_msg,bill_no,waybill_status,error_msg')
                    ->where($where)
                    ->order('id','desc')
                    ->paginate();
    }
}